1. Bases de datos SQL vs NoSQL

Antes de entender DynamoDB es fundamental comprender la diferencia entre bases de datos relacionales y no relacionales.

Bases de datos relacionales

  • Usan tablas
  • Estructura fija
  • Lenguaje SQL
  • Relaciones complejas

Ejemplo SQL

ID Nombre Edad
1 Ana 22

Bases de datos NoSQL

  • Estructura flexible
  • Formato JSON
  • Escalabilidad horizontal
  • Mayor flexibilidad

Ejemplo NoSQL

{
  "id":1,
  "nombre":"Ana",
  "edad":22
}
SQL suele utilizarse en aplicaciones empresariales complejas. NoSQL destaca en aplicaciones masivas y escalables.
Pregunta típica: DynamoDB es NoSQL, NO relacional.

Mini-test

¿Qué característica tiene NoSQL?

Esquema flexible
Solo tablas rígidas
Usar exclusivamente SQL
No usar JSON

2. ¿Qué es Amazon DynamoDB?

Amazon DynamoDB es una base de datos NoSQL completamente administrada por AWS.

Está diseñada para aplicaciones que necesitan:

  • Escalabilidad extrema
  • Baja latencia
  • Alta disponibilidad
  • Rendimiento constante

Características principales

  • Serverless
  • NoSQL
  • Clave-valor
  • Documentos JSON
  • Escalado automático

Qué administra AWS

  • Infraestructura
  • Servidores
  • Replicación
  • Parches
  • Backups
DynamoDB puede manejar millones de peticiones por segundo.

Mini-test

¿Qué tipo de base de datos es DynamoDB?

NoSQL
Relacional SQL
DNS
Sistema operativo

3. Arquitectura NoSQL en DynamoDB

DynamoDB utiliza principalmente modelo clave-valor y documentos.

Modelo clave-valor

Clave → Valor

Ejemplo

{
  "usuario_id":"100",
  "nombre":"Carlos",
  "nivel":5
}

Ventaja principal

No necesitamos que todos los registros tengan exactamente la misma estructura.

Ejemplo flexible

{
  "usuario_id":"200",
  "nombre":"Laura",
  "mascota":"Luna"
}

Este registro tiene un atributo extra.

En SQL normalmente todas las filas siguen exactamente las mismas columnas.

Mini-test

¿Qué ventaja tiene DynamoDB?

Estructura flexible
Solo columnas fijas
No almacenar datos
Solo usar XML

4. Tablas, ítems y atributos

Aunque DynamoDB sea NoSQL, sigue usando el concepto de tablas.

Elementos principales

  • Tabla → contenedor principal
  • Ítem → registro individual
  • Atributo → dato concreto

Ejemplo

Tabla:
Usuarios

Ítem:
{
  "id":"1",
  "nombre":"Ana"
}

Diferencia importante

En DynamoDB los ítems pueden tener atributos distintos.

Un ítem en DynamoDB equivale aproximadamente a una fila SQL.

Mini-test

¿Qué es un ítem?

Un registro dentro de la tabla
Una VPC
Una API Gateway
Un servidor EC2

5. Partition Key y Sort Key

Partition Key

Es la clave principal usada para identificar y distribuir datos.

Sort Key

Permite ordenar múltiples registros relacionados.

Ejemplo

{
 "usuario":"Ana",
 "fecha":"2026-05-15"
}
Clave Valor
Partition Key usuario
Sort Key fecha

Importancia

El diseño de claves es fundamental para rendimiento DynamoDB.

Una mala elección de claves puede degradar muchísimo el rendimiento.

Mini-test

¿Qué permite Sort Key?

Ordenar registros relacionados
Crear VPCs
Cifrar discos
Generar snapshots

6. Operaciones de lectura y escritura

DynamoDB permite operaciones extremadamente rápidas.

Operaciones básicas

  • PutItem
  • GetItem
  • UpdateItem
  • DeleteItem

Ejemplo AWS CLI

aws dynamodb put-item \
--table-name Usuarios \
--item '{
 "id":{"S":"1"},
 "nombre":{"S":"Ana"}
}'

Lectura

aws dynamodb get-item \
--table-name Usuarios \
--key '{"id":{"S":"1"}}'
DynamoDB responde normalmente en milisegundos.

Mini-test

¿Qué operación inserta datos?

PutItem
DeleteVPC
CreateSubnet
MountVolume

7. Escalabilidad horizontal

DynamoDB está diseñado para escalar horizontalmente.

Escalado horizontal

Añadir más servidores.

Escalado vertical

Añadir más potencia al mismo servidor.

DynamoDB

AWS reparte automáticamente datos entre múltiples nodos.

Ventajas

  • Mayor rendimiento
  • Alta disponibilidad
  • Millones de peticiones
SQL tradicional suele escalar verticalmente; DynamoDB destaca en horizontal.

Mini-test

¿Qué significa escalado horizontal?

Añadir más servidores
Más RAM mismo servidor
Crear snapshots
Usar CloudFront

8. Alta disponibilidad y replicación

DynamoDB replica automáticamente datos entre múltiples Availability Zones.

Ventajas

  • Tolerancia fallos
  • Alta disponibilidad
  • Protección automática

Qué significa Multi-AZ

Los datos existen simultáneamente en varios centros de datos.

Resultado

Si falla un servidor o incluso una AZ, los datos siguen disponibles.

AWS administra completamente la replicación interna.

Mini-test

¿Qué mejora Multi-AZ?

Disponibilidad
DNS
HTML
SSH

9. Crear una tabla DynamoDB

Paso 1

Entrar al servicio DynamoDB.

Paso 2

Seleccionar “Create Table”.

Paso 3

Table name:
Usuarios

Paso 4

Partition Key:
id

Paso 5

Mantener configuración por defecto.

Paso 6

Crear tabla.

AWS puede crear tablas DynamoDB en pocos segundos.

Mini-test

¿Qué necesita obligatoriamente una tabla?

Partition Key
CloudFront
Bucket S3
Elastic IP

10. Consultas y escaneos

Query

Busca datos usando claves.

Scan

Recorre toda la tabla.

Operación Rendimiento
Query Muy rápido
Scan Más lento

Ejemplo Query

aws dynamodb query \
--table-name Usuarios
Scan puede ser muy costoso en tablas grandes.

Mini-test

¿Qué operación es más eficiente?

Query
Scan completo
DeleteTable
FormatDisk

11. APIs y JSON

DynamoDB trabaja muchísimo con APIs y formato JSON.

Qué es una API

Un intermediario que permite comunicación entre programas.

Ejemplo API

Frontend
↓
API
↓
DynamoDB

JSON típico

{
 "usuario":"Carlos",
 "nivel":10,
 "online":true
}

Ventaja

JSON encaja perfectamente con aplicaciones web modernas.

Muchas APIs REST modernas usan DynamoDB internamente.

Mini-test

¿Qué formato usa mucho DynamoDB?

JSON
EXE
DOCX
ISO

12. DynamoDB con Lambda

DynamoDB se integra perfectamente con arquitecturas serverless.

Arquitectura típica

Usuario
↓
API Gateway
↓
Lambda
↓
DynamoDB

Ejemplo Python

import boto3

dynamodb = boto3.resource('dynamodb')

tabla = dynamodb.Table('Usuarios')

tabla.put_item(
 Item={
   'id':'1',
   'nombre':'Ana'
 })

Ventajas

  • Escalabilidad automática
  • Baja latencia
  • Pago por uso
Lambda suele usar boto3 para conectarse a DynamoDB.

Mini-test

¿Qué librería Python usa AWS?

boto3
numpy
matplotlib
pygame

13. Costes y seguridad

Factores de coste

  • Lecturas
  • Escrituras
  • Almacenamiento
  • Transferencia datos

Modos capacidad

Modo Uso
On-Demand Tráfico variable
Provisioned Tráfico predecible

Seguridad

  • IAM
  • Cifrado
  • VPC Endpoints
On-Demand simplifica muchísimo aplicaciones impredecibles.

Mini-test

¿Qué modo es mejor para tráfico impredecible?

On-Demand
Provisioned fijo
Solo EC2
CloudFront

14. Arquitectura moderna con DynamoDB

Arquitectura típica moderna

Frontend React
↓
API Gateway
↓
Lambda
↓
DynamoDB

Ventajas

  • Escalabilidad masiva
  • Alta disponibilidad
  • Arquitectura serverless
  • Baja latencia
  • Poco mantenimiento

Casos de uso reales

  • Videojuegos online
  • Redes sociales
  • Apps móviles
  • IoT
DynamoDB es extremadamente popular en arquitecturas cloud modernas y aplicaciones serverless.
No todas las aplicaciones deben usar NoSQL; depende del tipo de datos y necesidades.

Mini-test

¿Qué arquitectura suele usar DynamoDB?

Serverless
Mainframes físicos
Solo FTP
Solo servidores locales